<script>
  // 使用说明

          //  https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html

          // 在小程序中使用网络相关的API时，需要注意下列问题，请开发者提前了解

          /*
              一、服务器域名配置

                       每个微信小程序都需要实现设置通讯域名，小程序 "只可以跟指定的域名进行网络通信"。
                       
                       包括HTTPS请求 (wx.request) 、上传文件(wx.uploadFile)、下载文件(wx.downloadFile) 和 WebSocket通信(wx.connectSocket)

                       从基础库 2.4.0 开始，网络接口允许与局域网 IP 通信，但要注意 "不允许与本机 IP 通信"。






                      ★、配置流程

                                    服务器域名请在 「小程序后台-开发-开发设置-服务器域名」 中进行配置，配置时需要注意：

                                        ①、域名只支持 https (wx.request、wx.uploadFile、wx.downloadFile) 和 wss (wx.connectSocket) 协议；

                                        ②、域名不能使用 IP 地址（小程序的局域网 IP 除外）或 localhost；

                                        ③、对于https域名，可以配置端口，如 https://myserver.com:8080，但是配置后只能向https://myserver.com:8080 发起请求。

                                              如果向 https://myserver.com、https://myserver.com:9091 等 URL 请求则会失败。

                                              。如果不配置端口。如 https://myserver.com，那么请求的 URL 中也不能包含端口，甚至是默认的 443 端口也不可以。

                                              如果向 https://myserver.com:443 请求则会失败。

                                        ④、对于 wss 域名，无需配置端口，默认允许请求该域名下所有端口。

                                        ⑤、域名必须经过 ICP 备案；

                                        ⑥、出于安全考虑，api.weixin.qq.com 不能被配置为服务器域名，相关API也不能在小程序内调用。

                                              开发者应将 AppSecret 保存到后台服务器中，通过服务器使用 getAccessToken 接口获取 access_token，并调用相关 API；

                                        ⑦、不支持配置父域名，使用子域名
         */

         /*
               二、DNS预解析域名

                                  小程序一般会依赖一些网络请求（如逻辑层的wx.request、渲染层的图片等网络资源）
                                  
                                  ，优化请求速度将会提升用户体验，而网络请求耗时中就包括DNS解析。

                                  DNS预解析域名，是框架提供的一种在小程序启动时，提前解析业务域名的技术。

                                  ★、配置流程

                                          DNS域名配置请求  「小程序后台-开发-开发设置-服务器域名」 中进行配置，配置时需要注意：

                                                ①、预解析域名无需填写协议头

                                                ②、预解析域名最多可添加5个

                                                ③、其他安全策略同服务器域名配置策略

          */

          /*
                三、网络请求

                          1、超时时间

                                    默认超时时间是 60s；

                                    超时时间可以在 app.json 或 game.json 中通过 networktimeout 配置

                                    也可以在接口调用时指定超时时间，如  wx.request({timeout:5000}),单位为 ms。接口调用的 timeout 配置优先级高于 app.json中的配置.

                          2、使用限制

                                    ①、网络请求的 referer header 不可设置。

                                            其格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html，
                                            
                                              其中 {appid} 为小程序的 appid，{version} 为小程序的版本号，版本号为 0 表示为开发版、体验版以及审核版本，
                                              
                                              版本号为 devtools 表示为开发者工具，其余为正式版本  

                                    ②、wx.request、wx.uploadFile、wx.downloadFile 的最大并发限制是 10 个；

                                    ③、wx.connectSocket 的最大并发限制是 5 个

                                    ④、小程序进入后台运行后，如果5s内网络请求没有结束，会回调错误信息 fail interrupted; 

                                        在回到前台之前，网络请求接口调用都会无法调用。

                          3、返回值编码

                                    ①、建议服务器返回值使用UTF-8编码。对于非UTF-8编码，小程序会尝试进行转换，但是会有转换失败的可能。

                                    ②、小程序会自动对BOM头进行过滤 (只过滤一个BOM头)

                          4、回调函数

                                      只要成功接收到服务器返回，无论 statusCode 是多少，都会进入 success 回调。

                                      请开发者根据业务逻辑对返回值进行判断。
          */

          /*
              四、常见问题

                      1、HTTPS证书

                                      小程序必须使用 HTTPS/WSS 发起网络请求。

                                      请求时系统会对服务器域名使用的 HTTPS 证书进行校验，如果校验失败，则请求不能成功发起。

                                      由于系统限制，不同平台对于证书要求的严格程度不同。为了保证小程序的兼容性，建议开发者按照最高标准进行证书配置，并使用相关工具检查现有证书是否符合要求。

                                      ★、对证书要求如下：

                                              1、HTTPS 证书必须有效；

                                                        证书必须被系统信任，即根证书已被系统内置

                                                        部署 SSL 证书的网站域名必须与证书颁发的域名一致

                                                        证书必须在有效期内

                                                        证书的信任链必需完整（需要服务器配置）

                                              2、iOS 不支持自签名证书;

                                              3、iOS 下证书必须满足苹果 App Transport Security (ATS) 的要求;

                                              4、TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2，请确保 HTTPS 服务器的 TLS 版本支持 1.2 及以下版本;

                                              5、部分 CA 可能不被操作系统信任，请开发者在选择证书时注意小程序和各系统的相关通告。


                      2、除了网络请求 API 外，小程序中其他 HTTPS 请求如果出现异常，也请按上述流程进行检查。如 https 的图片无法加载、音视频无法播放等。


                      3、跳过域名校验

                                        在微信开发者工具中，可以临时开启 "开发环境不校验请求域名、TLS版本及HTTPS选项" 选项，跳过服务器域名的校验。

                                        此时，在微信开发者工具中及手机开启调试模式时，不会进行服务器域名的校验。


                                        ★、在服务器域名配置成功后，建议开发者关闭此选项进行开发，并在各平台下进行测试，一确认服务器域名配置正确。


                                        微信小程序在微信开发者工具中进行本地调试时，后端开发者服务器可以是不带 SSL 证书的本地服务器 HTTP 域名。

                                        只需要在微信开发者工具的 “设置”->“项目设置” 中，勾选 “不校验合法域名、web - view（业务域名）、TLS 版本以及 HTTPS 证书” 选项，
                                        
                                        就可以使用如http://localhost:8080这样的本地 HTTP 地址进行调试。
                                        
                                        不过需要注意的是，如果要发布小程序，就必须使用 HTTPS 协议，且域名要经过 ICP 备案，不能使用 IP 地址或localhost，也不能带端口号。

          */
</script>